B Binance · The world's largest crypto exchangeBinance Sign up → AD OKX OKX · A leading global crypto exchangeOKX Sign up → AD
Crypto analysis tools Loading Data: Binance public API

📊 Volume Profile Chart

Pick a coin, timeframe and range to see a live volume profile from Binance candles: POC, value area (VAH/VAL), nearest volume nodes and low-volume gaps.

Rows

–

Up-bar volume Down-bar volume POC VAH · VAL (70%)

Profile summary

Price–
POC (most-traded price)–
VAH (value area high)–
VAL (value area low)–
Where price sits–
–

High-volume nodes above (resistance)

Top 3 by volume, nearest first
ZoneShareUp-bar %Distance
–

High-volume nodes below (support)

Top 3 by volume, nearest first
ZoneShareUp-bar %Distance
–

Low-volume gaps (LVN)

Rows under 25% of the median row

Low-volume gap — little trading happened here, so price tends to move through it quickly.

ZonePositionWidthDistance
–

Volume by price, every row

Show table
ZoneVolumeShareUp-bar %Tags

Unfamiliar term? → Crypto & Stock Glossary

For information only, not investment advice. Data comes from exchanges' public APIs and may be delayed or interrupted. Charts: TradingView Lightweight Charts™

What this tool does

A volume profile shows how much trading happened at each price. Prices where a lot of volume changed hands tend to act as support or resistance when price returns, while prices with almost no trading tend to be crossed quickly. This tool builds the volume profile from Binance candles, draws it as bars on the right side of the chart, and summarizes the POC, the value area (VAH and VAL), the nearest high-volume nodes above and below price, and the low-volume gaps.

How it is calculated

The low-to-high price span of the chosen range (default: the last 500 4H bars, excluding the bar still forming) is split into equal rows (24, 48 or 96; default 48). Each bar's volume (in coin units) is spread evenly across its low-to-high range: row volume += bar volume × overlap with the row ÷ (high − low). Volume from bars that closed at or above their open counts as up-bar volume, the rest as down-bar volume. The POC is the middle price of the row with the most volume. The value area starts at the POC row and adds one neighbouring row at a time, whichever of above/below has more volume (above on a tie), until it holds 70% of total volume; its top is the VAH and its bottom the VAL. A high-volume node is a row whose volume is at least the median row and is the largest within ±(rows ÷ 24) rows; the three largest nodes above and below price are listed, nearest first. A low-volume gap is a run of rows below 25% of the median row, ignoring runs that touch the top or bottom of the range because those are just the tails. Distances are % from the current price (row middle for nodes, nearest edge for gaps). KRW = USDT price × Bithumb's USDT/KRW rate (Upbit's if Bithumb is unavailable). 'Visible range only' recomputes from the closed bars visible on the chart (when there are at least 20). Candles are downloaded again and the profile recalculated every 30 seconds (downloaded candles are cached for at most 10 seconds, so every refresh gets fresh data on any timeframe).

Reading the screen, section by section

Top bar: coin, timeframe, range, rows

This bar sets what gets calculated. The coin list is the 60 Binance spot USDT markets with the largest 24-hour turnover (stablecoins and wrapped tokens excluded); timeframes are 15m, 1H, 4H and 1D; the range is the last 100, 200, 500 or 1000 bars; and the profile has 24, 48 or 96 price rows. It opens on 4H, 500 bars, 48 rows. Changing the coin, timeframe or range downloads candles again, while the row count and "Visible range only" recalculate instantly from the candles already loaded. Your choices go into the address bar, so a shared link opens the same view. A common misreading is that more rows means more accuracy: the data stays the same, each row just collects less volume and the peaks split into finer pieces.

  • Coin, timeframe or range changed: candles are downloaded and everything recalculated
  • Rows or Visible range only: recalculated at once from the loaded candles

Chart and the profile bars on the right

Horizontal bars grow leftward from the right-hand price axis, drawn over the candles and volume bars. The longest bar is 30% of the chart width, and each bar is split into volume from up-bars and volume from down-bars. Rows inside the value area are drawn stronger, rows outside fainter, the POC row gets an outline, the POC is a solid price line and VAH and VAL are dashed. Hover the crosshair to see that row's price range, share of volume and up-bar share under the legend. Candles include the bar still forming, but the profile is stacked from closed bars only, so a burst of volume in the forming bar reaches the profile only on the first refresh after that bar closes.

Profile summary numbers

Shows the price, the POC, VAH and VAL with each one's distance from price in %, plus tags for whether price is above, inside or below the value area and above or below the POC. Price is the close of the forming bar, i.e. the last trade; the KRW figure multiplies it by Bithumb's USDT/KRW rate (Upbit as a fallback) and is a reference only. Value area width is VAH ÷ VAL − 1, and the share next to it is the actual volume of the value-area rows, which can be slightly above 70% because rows are added whole. What changes every 30 seconds while you watch is the price, the distances and the position tags. The POC, VAH and VAL move only when a new bar closes and the range slides by one bar, or when you pan with Visible range only on.

Reading sentence

The box under the summary turns the same numbers into sentences: which bars the profile is based on, how far the POC sits above or below price (within 0.1% it says price is almost on it), whether price is above, inside or below the value area, and where the nearest node above, the nearest node below and the nearest low-volume gap are. If Visible range only is on but fewer than 20 closed bars are on screen, a note says the full range was used instead. The text describes position; it does not forecast direction. "Above the value area" means price is higher than where most recent trading happened, not that it will rise, so a sentence that changes 30 seconds later is not a reversed call.

High-volume nodes above and below

Lists up to three rows where trading clustered above price (resistance side) and three below (support side). A row counts as a node when its volume is at least the median row and it is the highest peak within a few rows either side. That window is the row count ÷ 24, rounded: 1 row at 24, 2 at 48, 4 at 96, so with any setting it looks for peaks within roughly ±4% of the whole price span. The three largest peaks on each side are picked by volume, then re-sorted nearest first, and the POC row is tagged. Above or below is decided only by comparing the row's middle price with the current price, so when price crosses a row's middle, the same node can move between the two tables.

  • Share: the row's volume ÷ total volume in the range
  • Up-bar %: the part of the row's volume that came from bars closing at or above their open (not actual buying)
  • Distance: (row middle ÷ price − 1) × 100

Low-volume gaps (LVN)

Finds runs of consecutive rows whose volume is under 25% of the median row, and shows the one containing price plus the nearest two above and below. Runs touching the very top or bottom row are the tails of the distribution, where price only touched briefly, so they are dropped; thin rows next to the range's high or low never appear here. Width is the run's top ÷ bottom − 1, and distance is measured from price to the nearer edge. When price is inside a gap, that row is highlighted and the distance shows 0. A gap is only a record that little traded there; price entering it does not have to move through quickly. Changing the row count moves the row boundaries, so the same range can show gaps in different places and numbers.

Volume by price, every row

Open the folded table to list every price row from top to bottom. Each row has a volume bar (length relative to the largest row, split into up-bar and down-bar parts), its share of volume, the up-bar share and tags (POC, value area, HVN, LVN, price). Value-area rows carry a line on the left edge and the row holding price is shaded. The row height in the header is (range high − range low) ÷ row count. Each bar's volume is spread evenly from its low to its high and shared out by overlap, an approximation that differs from counting trades at each price. Bars with long wicks hand volume to the wick area too, so a price that was only brushed past can look thicker than it really traded.

Keeping it open

Every 30 seconds the candles and the KRW rate are downloaded again. Downloaded candles are cached for at most 10 seconds, so each refresh brings fresh data; the page pauses while the tab is hidden and refreshes once as soon as you come back. A quick scan order: the status reads Live and the update time is recent, then the position tags, then the distance to the nearest node and gap, then the bars on the chart. The profile itself is rebuilt only when a bar closes, so think of the range sliding by one bar every 15 minutes on 15m and every 4 hours on 4H. To watch short and long views together, keep 15m with 200 bars and 1D with 1000 bars in two windows, and open an automatic support and resistance tool or a trend indicator next to it to check the same prices from another angle.

  • Every 30 s: candles, price and KRW rate reloaded; distances and position updated
  • When a bar closes: POC, value area, nodes and gaps recalculated
  • Visible range only on: recalculated 0.2 s after you move the chart

Things to know

Frequently asked questions

How is a volume profile different from the normal volume bars?

The volume bars under the chart show volume over time, one bar per candle. A volume profile shows volume by price: the same volume is stacked into price rows, so the horizontal bars show where most buying and selling took place. That is why it is mainly used to find likely support and resistance.

What are the POC, VAH and VAL?

The POC (point of control) is the price with the most volume in the range. The value area is the band around the POC that holds 70% of the volume; its top is the VAH and its bottom the VAL. Whether price is above, inside or below the value area tells you how far it has moved from the centre of recent trading.

The numbers differ slightly from TradingView's volume profile.

The calculation differs a little. TradingView splits each candle using lower-timeframe data, while this tool spreads each candle's volume evenly between its high and low. The number of rows and whether the forming bar is included also matter. For the same range the POC and value area usually land close together.

Are up-bar and down-bar volume the actual buy and sell volume?

No. They are the volume of candles that closed at or above their open (up bars) versus below it (down bars). Every trade has a buyer and a seller, so treat the split as a hint of whether rising or falling candles dominated trading at that price.

How often does it update, and how is the KRW price calculated?

Candles are downloaded fresh and the profile recalculated every 30 seconds. The profile is built from closed bars only, so the POC and value area change when a new bar closes; in between, what changes every 30 seconds is the price and its distance and position. It pauses when the tab is hidden and refreshes as soon as you return. The KRW price is the USDT price multiplied by Bithumb's USDT/KRW rate (Upbit's if Bithumb is unavailable), a reference only; it can differ from Korean exchange prices, which include the kimchi premium.

For information only, not investment advice. Data comes from exchanges' public APIs and may be delayed or interrupted.

📚 Worth reading
📊Chart Analysis, Properly From the Start→ 🪙Cryptocurrency, starting from the structure→ 🧮How to Read OBV: Slope and Divergence of Cumulative Volume→ 📶How to Read Trading Volume Alongside Price→
← All crypto tools